﻿using System;
using System.Data.SQLite;
using System.Windows.Forms;
using Dapper;

namespace SoftLab.Formularios
{
    public partial class AgregarUsuario : Template.Template
    {
        private string _username = "-";
        private string _password = "-";
        private string _permisos = "-";

        public AgregarUsuario()
        {
            InitializeComponent();
        }

        string Validar()
        {
            var mensaje = "-";
            if (String.IsNullOrWhiteSpace(txtUsername.Text))
                mensaje = "Nombre de usuario";
            else
                _username = txtUsername.Text;

            if (String.IsNullOrWhiteSpace(txtPassword.Text))
                mensaje = "Contraseña";
            else
                _password = txtPassword.Text;

            if (txtConfirmar.Text != txtPassword.Text)
                mensaje = "Confimar contraseña diferente";
            else _password = txtConfirmar.Text;

            _permisos = cmbPermisos.Text;

            if (mensaje != "-")
                return "Debe ingresar: \n - " + mensaje;
            return mensaje;
        }

        private void label2_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            string validar = Validar();
            if (validar == "-")
            {
                using (var conexion = new SQLiteConnection(Properties.Settings.Default.ConnectionString))
                {
                    conexion.Open();
                    var usuario = new Clases.Usuarios
                    {
                        Username = _username,
                        Password = Clases.Codificador.EncodeMd5(_password),
                        Permisos = _permisos,
                        LastLogin = "0"
                    };
                    const string sql = "insert into usuario(username, password, permisos, lastlogin) values(@Username,@Password,@Permisos,@LastLogin)";
                    var id = conexion.Execute(sql, usuario);
                    if (id != 0) MessageBox.Show("Agregado correctamente.", "Agregado");
                    else
                        MessageBox.Show("Error al ingresar el usuario.", "Error", MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
                    conexion.Close();
                }
                Close();
            }
            else
                MessageBox.Show(validar, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
}
